/**
 * https://leetcode-cn.com/problems/search-insert-position/
 * 
 * 搜索插入位置
 * @param nums 
 * @param target 
 */
const searchInsert = (nums: number[], target: number): number => {
    // 开始位置和末尾位置
    let s = 0,
        e = nums.length;

    
    while (s < e) {
        // 获取中间位置
        const m = ( s + e ) >> 1
        if (nums[m] > target) {
            // 往前找
            e = m;
        } else if (nums[m] < target) {
            // 往后找
            s = m + 1
        } else {
            // 找到了该位置
            return m
        }
    }

    // 最后s的位置就是将要插入的位置
    return s
};

console.log(searchInsert([1, 3, 5, 6], 5))
console.log(searchInsert([1, 3, 5, 6], 2))
console.log(searchInsert([1, 3, 5, 6], 4))
console.log(searchInsert([1, 3, 5, 6], 7))
console.log(searchInsert([1, 3, 5, 6], 0))